草庐IT

C++ sizeof 包装类

全部标签

Android Google Directions Service 可以原生使用吗?包装框架?有公共(public)交通/自行车路线吗?

关于Android和GoogleDirectionsService的一些问题:Android上是否有使用Google的路线服务的native方法,或者是否有任何不错的包装器框架?我想检索从A到B所需的时间,并可能在表格和/或map中显示路线。据我所知,只能检索“步行”和“驾车”的路线。有没有一种方法(也许不是来自谷歌)也可以获取有关公共(public)交通工具或“骑自行车”的信息? 最佳答案 我不知道这是否是你想要的,但你可以像这样激发一个Intent:Stringurl="http://maps.google.com/maps?s

c++ - 为什么 sizeof(std::variant) 与具有相同成员的结构的大小相同?

类模板std::variant表示类型安全的union。std::variant的实例在任何给定时间要么持有其替代类型之一的值,要么不持有任何值。sizeof(std::variant)==16但是如果是union,为什么要占用这么多空间呢?structT1{floata;int32_tb;doublec;};structT2{union{floata;int32_tb;doublec;};};变体与结构体大小相同sizeof(T1)==16sizeof(T2)==8我希望union的大小加上要存储的4个字节,哪种类型是事件的。 最佳答案

c++ - 什么是 sizeof(something) == 0?

我有一个模板,它采用具有不同值的结构,例如:structSomething{charstr[10];intvalue;......};在函数内部我使用了sizeof运算符:跳入内存sizeof(Something);有时我不想跳任何东西;我希望sizeof返回零。如果我放入一个空结构,它将返回1;我可以在模板中放入什么以使sizeof返回零? 最佳答案 sizeof永远不会为零。(原因:sizeof(T)是T[]类型数组中元素之间的距离,要求元素地址唯一)。也许您可以使用模板来进行sizeof替换,它通常使用sizeof但专门针对一

c++ - Haskell IO monad 的 C/C++ 包装器

我想从C/C++调用Haskell函数。我已经阅读了一些与该主题相关的教程,但是其中没有涉及IOmonad调用。特别是,我想调用一个使用interact函数的函数(interact::(String->String)->IO())。我不明白在这种情况下如何使用函数?如何在C/C++包装器中声明函数?如何在C/C++和Haskell之间转移标准输入/输出的控制(在C/C++代码中)? 最佳答案 我将让这个答案相对简短,因为大部分内容都包含在FFIdocumentation中。.您可以通过在C中按名称调用函数来使用它们。函数必须声明为f

c++ - 包装非 POD 类型 : no warning, 意外大小?

这是一个相当人为的类型系列。A2只是A的非POD版本:templatestructA{chardata[N];}__attribute__((packed));templatestructA2{A2(){//actualbodynotsignificantmemset(data,0,N);}chardata[N];}__attribute__((packed));templateclassT>structC{Ta;int32_ti;Tt2;}__attribute__((packed));//};//oops,forgottopacktemplateclassT>structB:C{c

C++ sizeof 与 bool

这是一个简单的问题。先写代码。structA{intx;};structB{booly;};structC{intx;booly;};在主函数中,我调用cout结果是bool:1int:4classA:4classB:1classC:8为什么C类的大小是8而不是5?请注意,这是在MINGW4.7/Windows7/32位机器上使用gcc编译的。 最佳答案 聚合的对齐方式是其最严格的成员(具有最大对齐要求的成员)的对齐方式。换句话说,结构的大小是其最严格(具有最大对齐要求)成员对齐的倍数。structD{boola;//willbep

c++ - 这个 sizeof 表达式是如何计算的?为什么这样调用它?

我在std::optional中看到这段代码实现:templatestructis_assignable{templateconstexprstaticboolhas_assign(...){returnfalse;}template()=std::declval(),true))>//thecommaoperatorisnecessaryforthecaseswhereoperator=returnsvoidconstexprstaticboolhas_assign(bool){returntrue;}constexprstaticboolvalue=has_assign(true)

c++ - 为什么衰减到数组参数的指针似乎不适用于 sizeof()?

我之前读过一个问题,由于与此完全相同而被关闭Whenafunctionhasaspecific-sizearrayparameter,whyisitreplacedwithapointer?和Howtofindthe'sizeof'(apointerpointingtoanarray)?但读完这篇文章后,我仍然对sizeof()的工作原理感到困惑。我知道将数组作为参数传递给函数,例如voidfoo(inta[5])将导致数组参数衰减为指针。我在上述2个问题链接中没有找到关于为什么sizeof()函数本身免于(或至少看似免于)这种指针衰减行为的明确答案。如果sizeof()的行为与任何其

c++ - 我可以依赖 sizeof(uint32_t) == 4 吗?

我知道我可以依赖sizeof(char)==1,但是sizeof(uint32_t)和sizeof(uint8_t)呢??从名字猜大小不应该是32bit(8bit)吗?谢谢! 最佳答案 固定大小的类型总是恰好是那个大小。如果你在一些没有那种大小的整数类型的奇怪平台上,那么它们将是未定义的。请注意,如果CHAR_BIT!=8,则不一定遵循sizeof(uint32_t)==4;同样,这只发生在奇怪的平台上。 关于c++-我可以依赖sizeof(uint32_t)==4吗?,我们在Stack

c++ - C 和 C++ 在 sizeof ('x' 上的差异)

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:WhyareCcharacterliteralsintsinsteadofchars?为什么在使用C时sizeof('x')返回4而在C++中sizeof('x')返回1?C++通常力图成为C的超集,那么为什么这两个结果会出现分歧呢?编辑只是一些进一步的澄清。这似乎是标准委员会有意为之的举动,我认为如果没有充分的理由就不会改变“x”的大小。我对原因很感兴趣。